unit tndb;

interface

uses SysUtils;

type TDB = class(TObject)
private

public
  constructor Create();
  destructor Destroy; override;
  class function FunkcjePobierz:string;
  class function OsobyPobierz:string;
  class function StopniePobierz:string;
  class function SamolotyPobierz:string;
  class function PasyStartowePobierz:string;
  class function LotniskaPobierz:string;
  class function NowaOsoba: string;
  class function UpdateOsoby(idOsoby:integer): string;
  class function NoweLotnisko(kraj, icao, nazwaLotniska, fuel,
      minimaStartu, minimaLadowania, telefon, fax, email, fire, ppr,
      operationAgency, operationHours: string; aktywne: integer): string;
  class function UpdateLotniska(kraj, icao, nazwaLotniska, fuel,
      minimaStartu, minimaLadowania, telefon, fax, email, fire, ppr,
      operationAgency, operationHours: string; aktywne,
      idLotniska: integer): string;
end;

implementation

{ TDB }

constructor TDB.Create;
begin
  inherited Create;
end;

destructor TDB.Destroy;
begin
  inherited Destroy;
end;

class function TDB.FunkcjePobierz: string;
begin
  result := 'SELECT id, nazwaFunkcji FROM funkcje WHERE aktywne = 1';
end;

class function TDB.LotniskaPobierz: string;
begin
  result := 'SELECT id, kraj, icao, nazwaLotniska, fuel, minimaStartu, '
    + 'minimaLadowania, telefon, fax, email, fire, ppr, operationAgency, '
    + 'operationHours FROM lotniska WHERE aktywne = 1';
end;

class function TDB.OsobyPobierz: string;
begin
  result := 'SELECT id, imie, nazwisko, idStopnia, imieOjca, dataUrodzenia, '
    + 'miejsceUrodzenia, nrDokumentu, pesel, idFunkcji, telKom, telWojskowy, '
    +  'idSamolotu FROM zaloga WHERE aktywny = 1';
end;

class function TDB.PasyStartowePobierz: string;
begin
  result := 'SELECT id, idLotniska, ils, tacan, var, mdb, dlugoscPasa '
    + 'FROM pasyStartowe WHERE aktywne = 1';
end;

class function TDB.SamolotyPobierz: string;
begin
  result := 'SELECT id, nazwaSamolotu, modelSamolotu FROM samoloty WHERE aktywne = 1';
end;

class function TDB.StopniePobierz: string;
begin
  result := 'SELECT id, korpus, stopien FROM stopnie WHERE aktywne = 1';
end;

class function TDB.NowaOsoba:string;
begin
  result := 'INSERT INTO "main"."zaloga" ("imie", "nazwisko", "idStopnia", "imieOjca", '
    + '"dataUrodzenia", "miejsceUrodzenia", "nrDokumentu", "pesel", "idFunkcji", '
    + '"telKom", "telWojskowy", "idSamolotu", "aktywny") ' 
    + 'VALUES (:imie, :nazwisko, :idStopnia, :imieOjca, :dataUrodzenia, '
    + ':miejsceUrodzenia, :nrDokumentu, :pesel, :idFunkcji, :telKom, :telWojskowy, '
    + ':idSamolotu, :aktywny)';
end;

class function TDB.UpdateOsoby(idOsoby:integer):string;
begin
  result := 'UPDATE "main"."zaloga" SET "imie" = :imie, "nazwisko" = :nazwisko, '
    + '"idStopnia" = :idStopnia, "imieOjca" = :imieOjca, '
    + '"dataUrodzenia" = :dataUrodzenia, "miejsceUrodzenia" = :miejsceUrodzenia, '
    + '"nrDokumentu" = :nrDokumentu, "pesel" = :pesel, "idFunkcji" = :idFunkcji, '
    + '"telKom" = :telKom, "telWojskowy" = :telWojskowy, "idSamolotu" = :idSamolotu, '
    + '"aktywny" = :aktywny WHERE id =' + IntToStr(idOsoby);
end;

class function TDB.NoweLotnisko(kraj, icao, nazwaLotniska, fuel, minimaStartu,
  minimaLadowania, telefon, fax, email, fire, ppr, operationAgency,
  operationHours: string; aktywne:integer):string;
begin
  result := Format('INSERT INTO "main"."lotniska" ("kraj", "icao", "nazwaLotniska", '
    + '"fuel", "minimaStartu", "minimaLadowania", "telefon", "fax", "email", '
    + '"fire", "ppr", "operationAgency", "operationHours", "aktywne") '
    + 'VALUES (''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'',''%s'', '
    + '''%s'',''%s'',''%s'',''%s'',%d)',[kraj, icao, nazwaLotniska, fuel,
      minimaStartu, minimaLadowania, telefon, fax, email, fire, ppr,
      operationAgency, operationHours, aktywne]);
end;

class function TDB.UpdateLotniska(kraj, icao, nazwaLotniska, fuel, minimaStartu,
  minimaLadowania, telefon, fax, email, fire, ppr, operationAgency,
  operationHours: string; aktywne,idLotniska:integer):string;
begin
  result := Format('UPDATE "main"."lotniska" SET "kraj"=''%s'',"icao"=''%s'','
    + '"nazwaLotniska"=''%s'',"fuel"=''%s'',"minimaStartu"=''%s'',"minimaLadowania"=''%s'', '
    + '"telefon"=''%s'',"fax"=''%s'',"email"=''%s'',"fire"=''%s'',"ppr"=''%s'', '
    + '"operationAgency"=''%s'',"operationHours"=''%s'',"aktywne"=%d WHERE "id"=%d',
      [kraj, icao, nazwaLotniska, fuel,
      minimaStartu, minimaLadowania, telefon, fax, email, fire, ppr,
      operationAgency, operationHours, aktywne, idLotniska]);
end;

end.
